const path = require("path");
function resolve(dir) {
    return path.join(__dirname, '.', dir)
}
// process.env.VUE_APP_BACKURL
const devConfig = {
    lintOnSave: false,
    pages: {
        index: {
            entry: "examples/main.js", // js入口文件修改
            template: "public/index.html",
            filename: "index.html"
        }
    },
    chainWebpack: config => {
        // 重新设置目录别名
        config.resolve.alias
            .set("@", path.resolve("examples"))
            .set("~", path.resolve("packages"));
        // 使 examples及packages目录下的js文件都加入编译
        config.module
            .rule("js")
            .include.add("/packages")
            .end()
            .include.add("/examples")
            .end()
            .use("babel")
            .loader("babel-loader");
    }
}

// 生产环境
let Version = new Date().getTime();
const proConfig = {
    lintOnSave: false,
    
    outputDir: 'lib',
    // css: {
    //     // 是否使用css分离插件 ExtractTextPlugin
    //     extract: {
    //         //一种方式，打包后的css 会带版本号，不改变文件名的。
    //         filename: 'css/[name].css?v=' + Version,
    //         chunkFilename: 'css/[name].css?v=' + Version,
    //     }
    // },
    css: { extract: false },
    pages: {
        index: {
            entry: "packages/index.js", // js入口文件修改
        }
    },
    // 将CSS和JS强关联在一起,注释下面css代码之后,需要手动引入css

    // 修改打包后js文件名
    configureWebpack: { // webpack 配置
        output: { // 输出重构  打包编译后的 文件名称  【模块名称.版本号.js】
            filename: `js/[name].js`,
            // chunkFilename: `js/[name].${conf.version}.js`
        },
        // 修改打包后css文件名
        // plugins: [
        //     new MiniCssExtractPlugin({
        //         filename: `css/[name].${conf.version}.css`,
        //         // chunkFilename: `css/[name].${conf.version}.css`
        //     })
        // ]
    },
    chainWebpack: config => {
        // 重新设置目录别名
        config.resolve.alias
            .set("@", path.resolve("examples"))
            .set("~", path.resolve("packages"));
        // 使 examples及packages目录下的js文件都加入编译
        config.module
            .rule("js")
            .include.add("/packages")
            .end()
    }
}

module.exports = process.env.NODE_ENV === 'production' ? proConfig : devConfig
